package com.sx.controller;

import com.sx.service.PersonService;
import com.sx.service.serviceImpl.PersonServiceImpl;
import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;

import java.io.IOException;
import java.io.Serial;
// 检查用户名是否可用
@WebServlet("/checkIdExists.action")
public class CheckServlet extends HttpServlet {
    @Serial
    private static final long serialVersionUID = 1L;
    // 业务层
    private final PersonService personService = new PersonServiceImpl();
    // 日志
    private final Logger logger= LogManager.getLogger(CheckServlet.class);
    /**
     * 处理GET请求以检查用户名是否可用
     * 此方法覆盖自父类，用于处理特定的GET请求它检查数据库中是否存在具有给定ID的用户，
     * 并基于此确定用户名是否可用
     *
     * @param req 用于获取请求参数的HttpServletRequest对象，在本例中是用户ID
     * @param resp 用于向客户端发送响应的HttpServletResponse对象
     * @throws ServletException 如果Servlet遇到异常
     * @throws IOException 如果发生输入或输出异常
     */
    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws  IOException {
        // 记录日志，开始检查用户名是否可用
        logger.info("检查用户名是否可用");

        // 从请求参数中获取用户ID
        String id = req.getParameter("id");

        // 尝试通过学生代码和密码查找用户如果返回null，则表示没有重复的用户，用户名可用
        boolean flag = personService.findUserByStuCode(id);
        resp.getWriter().write(String.valueOf(flag));
    }
}
